草庐IT

c++ - DrawText VS TextOut Win32

全部标签

c - 使用 Windows 套接字的 WriteFile 返回无效参数错误

我已经为Windows套接字苦苦挣扎了两天,无法像在Linux中那样只使用写入套接字。我想编写自己的shellcode,并且正在研究如何将stdout、stdin重定向到套接字句柄(这就是我的游戏来源)。我使用Windows7x64,必要时构建7601。这是我的代码#include#include#include#includeintmain(intargc,char**argv){//boringcodestartsif(argc");}WSADATAwsadata;intresult=WSAStartup(MAKEWORD(2,2),&wsadata);if(result!=NO_

windows - 导入 Gtk 和 win32ui 模块时,Python.exe 在关闭 Gtk.main() 后继续运行

我在Windows7上运行python2.7.13。我正在使用Gtk(来自pygobject3.18.2)创建一个窗口。我也使用win32ui(来自pywin32221)。当我导入这两个模块时,我的程序运行正常,直到我关闭它。窗口正常关闭,但python进程继续运行,用于运行脚本的cmd窗口没有返回decmd提示符。我必须杀死python才能返回提示符这是一个简单的测试脚本。这在我的系统上没有正确关闭。如果我注释掉#importwin32ui它会正常关闭fromgi.repositoryimportGtkimportwin32uiclassWindow(Gtk.Window):def_

c - 是否有来自低级库(如 kernel32.dll 或 ntdll.dll)的 wsprintf() 类型函数?

我正在编写一个低级记录器函数,它将文本字符串附加到文本(日志)文件的末尾。要求是此函数不应调用来自DLL的任何WinAPI,这些DLL可能尚不可用于该进程——例如当它从DllMain调用时处理程序。换句话说,它不能使用除了保证加载到任何用户模式进程中的库之外的任何库,即kernel32.dll或ntdll.dll.我可以通过CreateFile、WriteFile、CloseHandle、HeapAlloc、HeapFree等均来自kernel32.dll。问题在于格式化输出字符串。例如,我需要添加一些额外的(自动生成的)详细信息,例如当前时间、进程ID、sessionID等。我通常会

Python-pip pywin32 失败

我正在尝试在venv中安装pywin32,但它似乎失败了-至少,pywin32之后不在站点包中。输入pipinstallpywin32后,我没有收到错误-相反,它显示Downloading和URL,然后我返回到shell-没有错误,没有确认安装成功。但是...外壳变红了。我从未见过这种行为,并且红色不会在不重新启动shell的情况下消失。为什么安装失败,外壳变红? 最佳答案 颜色变成红色是因为它正在奔跑中途死亡。输入命令Color07将解决此问题。您有管理员权限吗?你的virtualenv激活了吗?

windows - Inno Setup 始终以 Pascal 脚本代码以 32 位模式启动 PowerShell

我想在InnoSetup的ssPostInstall步骤中使用PowerShell(64位版本),但它总是打开32位PowerShell。如您在我的脚本中所见,我的InnoSetup配置为64位应用程序。当我开始设置时,我可以在任务管理器中看到它作为32位应用程序运行另外,将要打开的PowerShell也是32位模式。这是我的InnoStup脚本:[Setup]ArchitecturesAllowed=x64ArchitecturesInstallIn64BitMode=x64PrivilegesRequired=admin[Code]ProcedureCurStepChanged(C

windows - 如何使用 Perl 或任何其他语言在 Windows x86-32bit 上找到确切的物理内存量?

我需要知道一台Windows机器有多少物理内存,使用Perl。我试过使用Win32::SystemInfo.但是,此模块声明了以下警告:OnIntelx86computerswithmorethan2GBandlessthan4GBofmemory,theMemoryStatusfunctionwillalwaysreturn2GBforTotalPhys.Similarly,ifthetotalavailablememoryisbetween2and4GB,AvailPhyswillberoundeddownto2GB.所以在一台有2-4GB物理内存的机器上,我得到一个错误的答案。有

c - 在 Windows 上处理 fpu 异常

我想在Windows上处理fpu异常,比如:#include#include#includeintmain(){doubleb=0;intraised;feclearexcept(FE_ALL_EXCEPT);b/=0;raised=fetestexcept(FE_OVERFLOW|FE_INVALID);if(raised&FE_OVERFLOW){printf("over\n");}if(raised&FE_INVALID){printf("invalid\n");}return0;}但是在Windows上。我试着阅读MSDN,但文档一点也不清楚。我想在x86和amd64架构上使用

CreateProcessWithLogonW 和 AssignProcessToJobObject

我有一个Windows服务(在WinXPSP2下),在LocalSystem帐户下运行,它使用CreateProcessWithLogonW启动进程。为了清理子进程,我尝试使用作业对象和TerminateJobObject。MSDN声明作业句柄必须具有JOB_OBJECT_ASSIGN_PROCESS访问权限,因为它是通过CreateJobObject创建的。进程句柄必须具有PROCESS_SET_QUOTA和PROCESS_TERMINATE权限。我认为它有它们,因为TerminateProcess和SetProcessWorkingSetSize都没有错误地返回。但是,Assign

Windows 32 位虚拟内存页面映射问题

我正在从这里学习Windows32位虚拟内存页面映射,(我的目标是现代Windows版本,例如Vista、Win7、Server2003/200832位版本。)http://blogs.msdn.com/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx两个困惑,用户空间虚拟内存空间通常限制为2G,但物理磁盘页面存储可能远大于2G。由于磁盘页面的数量多于虚拟内存页面的数量,因此理论上可以将多个磁盘页面映射到一个虚拟地址页面。如果用户请求访问某个虚拟地址,如果多个磁盘页面映

c - 如何以可移植的方式创建流程?

我正在尝试编写一个需要创建其他进程的程序。我已经习惯了WindowsAPI,但现在我需要我的程序也能够在Linux平台上运行。有没有可能以便携的方式做到这一点?我必须为此目的使用预处理器吗?编辑:我需要等待它完成才能继续做事。 最佳答案 在我看来,应该始终避免使用系统函数:它不可靠,因为您不知道哪个shell将处理您的命令,并且它没有办法返回明确的错误代码。此外,在Windows等平台上,进程非常重,启动一个新进程只是为了启动另一个进程并不是一个好主意,顺便说一下,一些安全套件可能会为您的应用程序尝试启动的每个进程发出警告,并且将此